#include "bsp_74hc138.h"
/***********************************************
函数名称：bsp_74hc154_init
函数参数：无
函数意义：初始化相关的IO口
函数返回ֵ：无
*************************************************/

void bsp_74hc138_init(void)
{
	//A B C EN
	//8 4 1 0
	PINSEL_CFG_Type PinCfg;
	PinCfg.Funcnum = 0;//默认GPIO功能
	PinCfg.Portnum = 1;
	PinCfg.Pinnum = 0;
	PinCfg.Pinnum = 1;
	PinCfg.Pinnum = 4;
	PinCfg.Pinnum = 8;
	PINSEL_ConfigPin(&PinCfg);
	
	GPIO_SetDir(PINSEL_PORT_1, (1<<0)|(1<<1)|(1<<4)|(1<<8), 1);     
	GPIO_ClearValue(PINSEL_PORT_1,(1<<0)|(1<<1)|(1<<4)|(1<<8));

}


/***********************************************
函数名称：write_74hc138
函数参数：
函数意义：选中路数
函数返回ֵ：无
*************************************************/
void write_74hc138(uint8_t dat)
{
	HC138_EN(0);
	switch(dat)//此处只有16路，简单点处理，直接switch处理
	{
		case 1:{
			HC138_A(0);
			HC138_B(0);
			HC138_C(0);
		}break;
		case 2:{
			HC138_A(1);
			HC138_B(0);
			HC138_C(0);
		}break;
		case 3:{
			HC138_A(0);
			HC138_B(1);
			HC138_C(0);
		}break;
		case 4:{
			HC138_A(1);
			HC138_B(1);
			HC138_C(0);
		}break;
		case 5:{
			HC138_A(0);
			HC138_B(0);
			HC138_C(1);
		}break;
		case 6:{
			HC138_A(1);
			HC138_B(0);
			HC138_C(1);
		}break;
		case 7:{
			HC138_A(0);
			HC138_B(1);
			HC138_C(1);
		}break;
		case 8:{
			HC138_A(1);
			HC138_B(1);
			HC138_C(1);
		}break;
		default:break;	
	}
	HC138_EN(1);
}
